import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import './assets/css/common.css'
import './assets/css/index.css'
import './assets/iconfont/iconfont.css';
import './assets/iconfont/iconfont.js'; // 直接引入本地图标资源
import svgIcon from './components/svgIcon.vue'
import Vant from 'vant';
import 'vant/lib/index.css'
import websocketService from './services/websocket'

// 检查并加载图标资源
const loadIcons = () => {
  // 检查是否在APP环境中
  const isApp = window.navigator.userAgent.includes('Cordova') || 
                window.navigator.userAgent.includes('Capacitor') ||
                window.navigator.userAgent.includes('uni-app') ||
                !window.navigator.onLine;
  
  if (isApp) {
    console.log('检测到APP环境，使用本地图标资源');
    // 在APP环境中，主要依赖本地的iconfont资源
    // 外部CDN资源可能无法访问，但本地资源应该正常工作
    
    // 确保本地图标资源加载
    const localIconScript = document.createElement('script');
    localIconScript.src = './js/iconfont.js'; // 使用相对路径
    localIconScript.onerror = () => {
      console.warn('本地图标资源加载失败，尝试使用备用方案');
      // 可以在这里添加备用图标方案
    };
    document.head.appendChild(localIconScript);
  } else {
    console.log('检测到Web环境，使用CDN图标资源');
    // 在Web环境中，CDN资源应该正常工作
  }
}

// 启动时加载图标
loadIcons();

createApp(App).use(store).use(router).use(Vant).component('svgIcon', svgIcon).mount('#app')

// 启动时自动连接WebSocket（如已登录）
const userId = localStorage.getItem('user_id');
if (userId) {
  websocketService.init(userId);
}

// 可选：监听localStorage变化，实现多标签页同步WebSocket连接
window.addEventListener('storage', (e) => {
  if (e.key === 'user_id') {
    if (e.newValue) {
      websocketService.init(e.newValue);
    } else {
      websocketService.disconnect();
    }
  }
});
